library lib_service;

import 'package:lib_base/data_repository/data_repository_manager.dart';
import 'package:lib_service/auth_service.dart';
import 'package:lib_service/cache_service.dart';
import 'package:lib_service/logger_service.dart';
import 'package:lib_service/pay_service.dart';
import 'package:lib_service/repositories/device_model_repository.dart';
import 'package:lib_service/router_service.dart';
import 'package:lib_service/sdk_manager.dart';
import 'package:lib_service/src/auth_service_impl.dart';
import 'package:lib_service/src/cache_service_impl.dart';
import 'package:lib_service/src/logger_service_impl.dart';
import 'package:lib_service/src/pay_service_impl.dart';
import 'package:lib_service/src/router_service_impl.dart';
import 'package:lib_service/src/sdk_manager_impl.dart';

class ServiceManager {
  static final ServiceManager instance = ServiceManager._internal();

  late final DeviceModelRepository deviceModelRepository =
      DeviceModelRepository();

  late final AuthService authService = AuthServiceImpl();

  late final RouterService routerService = RouterServiceImpl();

  late final SDKManager sdkManager = SDKManagerImpl();

  final CacheService cacheService = CacheServiceImpl();

  final LoggerService loggerService = LoggerServiceImpl();

  final PayService payService = PayServiceImpl();

  ServiceManager._internal() {
    DataRepositoryManager.instance
        .register(DeviceModelRepository.kId, () => deviceModelRepository);
  }

  void init() {}
}
